package com.googlecode.androidcartridge;

import org.andromda.core.profile.Profile;
import org.andromda.metafacades.uml.UMLProfile;

/**
 * The Android profile. Contains the profile information (tagged values, and
 * stereotypes) for the Android cartridge.
 * 
 * 
 */
public class AndroidProfile extends UMLProfile {
	private static final Profile PROFILE = Profile.instance();

	public static final String STEREOTYPE_ACCOUNT_CONTROLLER = PROFILE
			.get("ACCOUNT_CONTROLLER");
	public static final String STEREOTYPE_APPLICATION_OBJECT = PROFILE
			.get("APPLICATION_OBJECT");
	public static final String STEREOTYPE_AUTHENTICATION_UC = PROFILE
			.get("AUTHENTICATION_UC");
	public static final String STEREOTYPE_CONTENT_PROVIDER = PROFILE
			.get("CONTENT_PROVIDER");
	public static final String STEREOTYPE_ENTITY = PROFILE.get("ENTITY");
	public static final String STEREOTYPE_SERVICE_CLIENT = PROFILE
			.get("SERVICE_CLIENT");
	public static final String STEREOTYPE_VALUE_OBJECT = PROFILE
			.get("VALUE_OBJECT");
	public static final String VALUE_ANDROID_ACCOUNT_STORAGE = PROFILE
			.get("ANDROID_ACCOUNT_STORAGE");

	/**
	 * Modeled on a class.
	 */
	public static final String VALUE_ANDROID_ACCOUNT_TYPE = PROFILE
			.get("ANDROID_ACCOUNT_TYPE");
	/**
	 * Applied on an entity that is associated to a ContentProvider. Defines the
	 * part of the uri that is associated with this entity. See <a href=
	 * "http://developer.android.com/guide/topics/providers/content-providers.html#urisum"
	 * > ContentProvider uri</a>
	 */
	public static final String VALUE_CONTENT_PATH_SEGMENT = PROFILE
			.get("CONTENT_PATH_SEGMENT");

	/**
	 * Modeled on a class with stereotype of type
	 * <code><<ContentProvider>></code> defines whether the ContentProvider is
	 * syncable (in AndroidManifest.xml).
	 */
	public static final String VALUE_CONTENT_PROVIDER_AUTHORITY = PROFILE
			.get("CONTENT_PROVIDER_AUTHORITY");

	public static final String VALUE_CONTENT_PROVIDER_EXPORTED = PROFILE
			.get("CONTENT_PROVIDER_EXPORTED");
	/**
	 * An icon representing the content provider. This attribute must be set as
	 * a reference to a drawable resource containing the image definition. If it
	 * is not set, the icon specified for the application as a whole is used
	 * instead.
	 */
	public static final String VALUE_CONTENT_PROVIDER_ICON = PROFILE
			.get("CONTENT_PROVIDER_ICON");
	public static final String VALUE_CONTENT_PROVIDER_LABEL = PROFILE
			.get("CONTENT_PROVIDER_LABEL");

	/**
	 * Modeled on a class with stereotype of type
	 * <code><<ContentProvider>></code> defines whether the ContentProvider is
	 * syncable (in AndroidManifest.xml).
	 */
	public static final String VALUE_CONTENT_PROVIDER_SYNCABLE = PROFILE
			.get("CONTENT_PROVIDER_SYNCABLE");

	/**
	 * Modeled on an identifier of type <code>Integer</code> defines if the
	 * column is autoincrement or not.
	 */
	public static final String VALUE_IDENTIFIER_GENERATOR_TYPE = PROFILE
			.get("IDENTIFIER_GENERATOR_TYPE");

	private AndroidProfile() {
		// utility class, don't instantiate
	}

}
